package kr.aow.web.listener;

import java.util.Hashtable;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import kr.aow.vo.MemberDTO;
import lombok.extern.slf4j.Slf4j;

// 웹어플리케이션에서 이벤트 처리 방법
// 1. 처리하고자 하는 이벤트를 결정
// 2. 해당 이벤트에 대한 처리자(listener)의 구현체를 만들고,
// 3. web.xml 에 이벤트 처리자를 등록(addListener).
// * 웹어플리케이션에서의 이벤트 분류
//   1. request 단위 이벤트(ServletRequestAttributeListener)
//   2. session 단위 이벤트(HttpSessionListener, HttpSessionAttributeListener, HttpSessionBindingListener)
//   3. ServletContext 단위 이벤트(SevletContextListener)
@Slf4j
public class ApplicationListener implements ServletContextListener{

	public Map<String, MemberDTO> userList;
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		log.info(arg0.getServletContext().getContextPath()+ "어플리케이션 스탑!!");
		
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		log.info(arg0.getServletContext().getContextPath()+ "어플리케이션 스타트!!");
		userList = new Hashtable<String, MemberDTO>();
		ServletContext ctx = arg0.getServletContext();
		ctx.setAttribute("userList", userList);
		ctx.setAttribute("cPath", ctx.getContextPath());
	}

}









